import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import electron from 'vite-plugin-electron'
import path from 'path'

export default defineConfig({
  plugins: [
    vue(),
    electron({
      entry: {
        main: 'src/main/index.ts',         // 主进程入口
        preload: 'src/preload/preload.ts'  // 预加载入口
      },
      vite: {
        resolve: {
          alias: {
            '@': path.resolve(__dirname, './src') // 将 @ 指向 src 目录
          }
        },
        build: {
          rollupOptions: {
            external: ['electron'],
            output: {
              format: 'cjs',
              // 确保生成正确的入口文件名
              // 关键配置：通过子目录分离文件
              entryFileNames: (chunkInfo) => {
                return chunkInfo.name === 'preload'
                  ? 'preload/[name].js'  // 预加载输出到 dist/electron/preload/preload.js
                  : '[name].js'     // 主进程输出到 dist/electron/main.js
              },
            }
          },
          outDir: 'dist/electron',
          // 开发时关闭压缩方便调试
          minify: process.env.NODE_ENV === 'production',
          sourcemap: true
        }
      },
      // 开发模式配置
      onstart(options) {
        options.startup(['.', '--no-sandbox'])
      }
    }),
   
  ],
  resolve: {
    alias: {
      "@": path.resolve("./src/renderer/")
    }
  },
  build: {
    emptyOutDir: false,
  },
  base: process.env.NODE_ENV === 'production' ? './' : '/',
})